#ifndef ANALYSIS_BASE_H
#define ANALYSIS_BASE_H


#include "locus.h"
#include "data_set.h"
#include "geneticOps.h"
#include "locus_frequency.h"
#include "results_document.h"
#include "allele_frequencies.h"

#include <QHash>
#include <QString>

class AnalysisBase {

public:
    AnalysisBase( DataSet *theData );

    bool selectPartition();

    void partitionOn( QString strataName );
    virtual bool run() = 0;



    inline ResultsDocument* getResults() { return _results; }

protected:

    // logging and output
    DataSet *_theData;
    ResultsDocument *_results;

    void dumpHeader( QString name );

};

#endif // ANALYSIS_BASE_H
